from core import main

class ManagementTool():
    """ 解析用户输入的指令，并执行相应的功能 """
    def __init__(self, sys_argv) -> None:
        """ 接收并校验命令行参数 """
        self.sys_argv = sys_argv
        self.verify_argv()
    
    def verify_argv(self):
        """ 验证指令参数合法性 """
        if len(self.sys_argv) < 2:
            self.help_msg()
        cmd = self.sys_argv[1]
        if not hasattr(self, cmd):
            print("invalid argument!")
            self.help_msg()
    
    def help_msg(self):
        """ 退出并输出帮助信息 """
        msg = """
        start:               start FTP server
        stop:                stop FTP server
        restart:             restart FTP server
        createuser username: create a ftp user
        """
        exit(msg)
    
    def execute(self):
        """ 执行指令 """
        cmd = self.sys_argv[1]
        func = getattr(self, cmd)
        func()

    def start(self):
        """ 开启FTP服务器 """
        print("start FTP server")
        server = main.FTPserver(self)
        server.run_forever()

    def stop(self):
        """ 停止FTP服务器 """
        print("stop FTP server")
        pass

    def restart(self):
        """ 重启FTP服务器 """
        print("restart FTP server")
        pass

    def createuser(self):
        """ 创建用户 """
        print("create a ftp user")
        pass